package cn.ll.service;

import java.text.DecimalFormat;
import java.util.List;

import cn.ll.po.Task;
import cn.ll.po.TaskDAO;

/**
 * 订单(task)的Service类。 包括对工作单，完成单的处理。 因为这些都是订单在不同状态下的名称。
 * 
 * @author Administrator
 * 
 */
public class TaskService {
	private TaskDAO taskDAO = null;

	public List<Task> selectTaskByTypeAndStatus(int type, int status) {
		List<Task> list = taskDAO.selectTaskByTypeAndStatus(type, status);
		return list;
	}

	public Task findById(String id) {
		Task task = taskDAO.findById(id);
		return task;
	}

	public List<Task> findByContractid(String contractid) {
		List<Task> list = taskDAO.findByContractid(contractid);
		return list;
	}

	public void update(Task task) {
		taskDAO.update(task);
	}

	public void save(Task task) {
		this.setId(task);
		taskDAO.save(task);
	}

	private void setId(Task task) {

		List maxTaskLs = taskDAO.getMaxIdTaskByContractId(task.getContractid());
		String id = task.getContractid();
		if (maxTaskLs.isEmpty()) {
			id = id + "-" + "001";
		} else {
			Task maxTask = (Task) maxTaskLs.get(0);
			String maxId = maxTask.getId();
			String num = maxId.substring(maxId.length() - 3, maxId.length());

			DecimalFormat df = new DecimalFormat("000");
			id = id + "-" + df.format((new Integer(num)) + 1);
		}

		task.setId(id);

	}

	public void delete(Task task) {
		taskDAO.delete(task);
	}

	public TaskDAO getTaskDAO() {
		return taskDAO;
	}

	public void setTaskDAO(TaskDAO taskDAO) {
		this.taskDAO = taskDAO;
	}
}
